package com.example.app

import android.content.Intent
import android.os.Bundle
import android.text.Editable
import android.view.View
import android.widget.Button
import android.widget.EditText
import androidx.appcompat.app.AppCompatActivity
import com.example.app.entity.User
import com.example.app.widget.CodeView
import com.example.core.utils.CacheUtils
import com.example.core.utils.toast
import com.example.lesson.LessonActivity

class MainActivity : AppCompatActivity(), View.OnClickListener {
    private val usernameKey: String = "username";
    private val passwordKey: String = "password";
    private lateinit var et_username: EditText
    private lateinit var et_password: EditText
    private lateinit var et_code: EditText
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        et_username = findViewById(R.id.et_username)
        et_password = findViewById(R.id.et_password)
        et_code = findViewById(R.id.et_code)
        CacheUtils.get(usernameKey)?.let {
            //没缓存会报错
            et_username.text = Editable.Factory.getInstance().newEditable(CacheUtils.get(usernameKey))
        }
        CacheUtils.get(passwordKey)?.let {
            et_password.setText(CacheUtils.get(passwordKey));
        }

        val btn_login = findViewById<Button>(R.id.btn_login)
        val img_code = findViewById<CodeView>(R.id.code_view)
        btn_login.setOnClickListener(this);
        img_code.setOnClickListener(this);
    }

    override fun onClick(v: View?) {
        if (v is CodeView) {
            v.updateCode();
        } else if (v is Button) {
            login();
        }
    }

    private fun login() {
        val username: String = et_username.getText().toString();
        val password: String = et_password.getText().toString();
        val code: String = et_code.getText().toString();

        val user: User = User(username, password, code);

        //嵌套函数 ，调用栈有消耗 会生成对象 慎用
          fun verify(user: User): Boolean {
//        if (user.username != null && user.username!!.length < 4) {//多线程情况 第2个判断可能会空
            if (user.username?.length ?: 0 < 4) {//  ?:
                toast("用户名不合法");//java类中用MyStaticFile.方法调用，kotlin中直接访问
//            MyStaticFile.toast("用户名不合法");//java类中用MyStaticFile.方法调用，kotlin中直接访问
                return false;
            }
            if (user.password != null && user.password!!.length < 4) {
                toast("密码不合法");
                return false;
            }
            return true;
        }
        if (verify(user)) {
            CacheUtils.save(usernameKey, username);
            CacheUtils.save(passwordKey, password);
            startActivity(Intent(this, LessonActivity::class.java));
        }

    }

  /*  private fun verify(user: User): Boolean {
//        if (user.username != null && user.username!!.length < 4) {//多线程情况 第2个判断可能会空
        if (user.username?.length ?: 0 < 4) {//  ?:
            toast("用户名不合法");//java类中用MyStaticFile.方法调用，kotlin中直接访问
//            MyStaticFile.toast("用户名不合法");//java类中用MyStaticFile.方法调用，kotlin中直接访问
            return false;
        }
        if (user.password != null && user.password!!.length < 4) {
            toast("密码不合法");
            return false;
        }
        return true;
    }*/


}